// 导入express框架
const express = require('express');
// 创建路由实例
const router = express.Router();

// 导入登录相关的处理函数
const userinfoHandler = require('../router_handler/userinfo.js');

// 导入express-joi用于请求参数验证
const expressJoi = require('@escook/express-joi');
// 导入登录相关的验证规则
const {name_limit,email_limit,password_limit,login_update_password_limit,createAdmin_limit} = require('../limit/user.js');


// 上传头像
router.post('/uploadAvatar',userinfoHandler.uploadAvatar);
// 头像绑定账号
router.post('/avatarBindAccount',userinfoHandler.avatarBindAccount);
// 获取用户信息
router.post('/getUserInfo',userinfoHandler.getUserInfo);
//修改用户名
router.post('/changeName',expressJoi(name_limit),userinfoHandler.changeName);
//修改性别
router.post('/changeSex',userinfoHandler.changeSex);
//修改邮箱
router.post('/changeEmail',expressJoi(email_limit),userinfoHandler.changeEmail);
//修改密码
router.post('/changePassword',expressJoi(password_limit),userinfoHandler.changePassword);
//登陆页面验证邮箱和账号
router.post('/verifyAccountAndEmail',userinfoHandler.verifyAccountAndEmail);
//登陆页面忘记密码->修改密码功能
router.post('/changePasswordInLogin',expressJoi(login_update_password_limit),userinfoHandler.changePasswordInLogin);
//用户权限管理
//创建管理员
router.post('/createAdmin',expressJoi(createAdmin_limit),userinfoHandler.createAdmin);
//获取管理员
router.post('/getAdmin',userinfoHandler.getAdmin);
//编辑管理员
router.post('/editAdmin',userinfoHandler.editAdmin);
//修改身份:升级或降级
router.post('/changeIdentity',userinfoHandler.changeIdentity);
//通过账号搜索用户
router.post('/searchUser',userinfoHandler.searchUser);
//冻结或解冻用户
router.post('/controlStatus',userinfoHandler.controlStatus);
//获取冻结用户列表
router.post('/getFrozenUser',userinfoHandler.getFrozenUser);
//删除用户
router.post('/deleteUser',userinfoHandler.deleteUser);
//通过部门获取用户
router.post('/getUserByDepartment',userinfoHandler.getUserByDepartment);
//获取对应身份用户的长度
router.post('/getUserLength',userinfoHandler.getUserLength);
//监听分页查询用户信息
router.post('/getUserListByPage',userinfoHandler.getUserListByPage);


// 导出路由模块
module.exports = router;
